1. Technical Field
The present invention is directed generally towards data transfer, and in particular to a method and apparatus controlling link speed in transferring data. Still more particularly, the present invention relates to a method and apparatus for matching the link speed of a controller with the link speed of a controlled device.
2. Description of the Related Art
Storage systems, printers, adaptors, and other devices often use controllers to control the operation of the device or of multiple such devices. For example, a storage array system may contain many storage devices arranged into drive loops, with each drive loop controlled by one or more controllers inside a controller enclosure. The controller and the controlled devices communicate via communication ports, such as Fibre Channel ports, which are sometimes interconnected by devices known as hubs. One example of an input/output (I/O) interconnection system of this type is known as a Fibre Channel—arbitrated loop I/O interconnection, which is often used for modular computer systems with redundant components.
Two basic types of data communication exist between processors and between processors and peripherals, channels and networks. A channel provides a direct or switched point-to-point connection between the communicating devices. A channel is usually hardware-intensive and transports data at the high speed with low processor resource overhead. In contrast, a network is an aggregation of distributed nodes (like workstations, file servers, or peripherals) with a protocol that supports interaction among these nodes. A network has relatively high processor resource overhead because the network is software-intensive and is, consequently, slower than a channel. Networks can handle a more extensive range of tasks than channels as they operate in an environment of unanticipated connections, while channels operate amongst only a few devices with predefined addresses. Fibre Channels attempt to combine the best of these two methods of communication into an I/O interface that meets the needs of channel users and also network users.
Although it is called Fibre Channel, Fibre Channel architecture doesn't represent either a channel or a real network topology. Fibre Channel architecture allows for an active intelligent interconnection scheme, called a Fabric, to connect devices. A Fibre Channel port manages a point-to-point connection between itself and the Fabric. Thus, Fibre Channel architecture represents a high performance serial link supporting its own protocol, as well as higher level protocols. The Fibre Channel standard addresses the need for very fast transfers of large amounts of information. An advantage of Fibre Channel architecture is that it gives users one port that supports both channel and network interfaces, unburdening computers from large numbers of I/O ports. Fibre Channel architecture also provides control and complete error checking over the link.
An example of a Fibre Channel—arbitrated loop I/O interconnection system is a storage array system that includes a storage array controller enclosure, with redundant controllers, and one or more drive expansion enclosures. In this example, the controller enclosure connects to the devices in the expansion enclosures via a Fibre Channel-arbitrated loop interconnection scheme. All Fibre Channel devices attached to a given arbitrated loop are set to run at the same link speed. The term “link speed” refers to the speed at which data is transmitted over a particular link. Each individual enclosure can support more than one Fibre Channel link speed, so the enclosures attached to a given loop are somehow configured to operate at the same link speed. However, in some types of systems, the controller enclosure can allow the drive loops to be operated at different link speeds.
An existing approach for matching link speeds between controllers and controlled devices is to set mechanical switches on the exterior of the controller enclosure and/or the enclosures of the controlled devices. Published Fibre Channel standards also specify a link speed negotiation process that can be used to automatically configure the link speed for point-to-point topologies.
However, these existing approaches for matching link speeds are not optimal. Mechanical switches increase the cost and manufacturing complexity of the controller and/or the controlled devices. Further, mechanical switches are also relatively prone to failure compared to solid state systems. In addition, a human operator physically sets the link speeds—a process that can be time consuming, tedious, and expensive. On the other hand, Fibre Channel link speed negotiation is not a practical solution for loop topologies. The speed negotiation algorithm defines a method to allow two ports to negotiate a common speed for physical architectures where the transmitter of each port involved in the negotiation is connected to the receiver of the other port involved in the negotiation. In loop topologies, the transmitter and receiver in a given device can be connected to two different devices.